-
Karl2D has web support without needing emscripten.
Not-WASM
WebUI
-
-
"Use any web browser as GUI, with Odin in the backend and modern web technologies in the frontend.".
-
WebUI .
-
WebUI's primary focus is using web browsers as GUI, but starting from v2.5, WebUI can also use WebView if you need to use WebView instead of a web browser.
-
Docs .
-
-
(2025-10-12)
-
.
-
This screenshot summarizes everything.
-
I added the repo as a submodule.
-
Ran the
setup.ps1inside the submodule. -
Created a
main.odinfile. -
Pasted the code from the "minimal example".
-
Ran
odin runand this window appeared.
-
-
My impression is that everything is exceptionally opaque. I have no idea what happened. The package is just a binding for the C library. Nothing is native, except for some mini-wrapper for a procedure, for error handling.
-
I didn't have a good impression.
-
-
Templating
-
-
Extremely simple.
-
Implements just a procedure to replace content inside a
{{ }}. -
Not a template engine by itself.
-
-
~ temple .
-
An experimental in-development templating engine for Odin
-
Works via
{{ }}. -
Supports Odin expressions, based on the given context/data
-
{{ this.name.? or_else "no name" }} -
{{ this.welcome if this.user.new else "" }}.
-
-
Sounds better than mustache, at least because it follows Odin's syntax.
-
-
This is mainly here to dogfood the libraries and provide an example.
-
TodoMVC is a project for comparing web projects, benchmarking, etc. You implement and compare.
-
(2025-10-12)
-
HTMX seemed to be only inside
.twigfiles, i.e., in the templates. -
I tried to build and had several issues:
-
Submodules were completely broken, asking for an ssh key, even though the repo is public. I don't know if this makes sense.
-
I had to remove the old submodules and get them again using the public address:
-
From
git@github.com:laytan/temple.gittohttps://github.com/laytan/temple, for example.
-
-
-
The main project simply doesn't compile.
-
There are several errors in Odin and usage that simply don't make sense.
-
I didn't understand. Odin simply doesn't allow what the author tried to do; it's not part of the language.
-
Tried calling functions in the global scope, for example.
Error: Procedures requiring a 'context' cannot be called at the global scope ... pl_index := temple.compiled("templates/index.temple.twig", List) -
-
-
-
-
-
-
~ odin-mustache .
-
Native implementation of mustache .
-
Port of the "Mustache Logic-less Ruby templates".
-
-
Works via
{{ }}. -
In theory, I prefer Temple, at least because it follows Odin's syntax.
-
WASM
Limitations
-
Virtual memory does not exist on the web, so virtual memory allocators will not work.